// 先要研究性质
// 性质一：bi一定是由ai中的数组成(因为如果不是由ai中的数组成，那么bi组成的数ai就无法表示，不是等价货币系统)
// 性质二：bi一定只能从ai中选择(假设bi是ai组合而成，ai又能被bi表示，如此转换该bi就能被其他ai表示，因此可以舍去)
// 总结：看当前货币数量是否能够被比它小的数组合而成，f[i - 1][j] 的方案数是否不为0

#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;

const int N = 110, M = 25010;
int a[N], f[M];
int n;

int main()
{
    int T;
    cin >> T;
    while (T--)
    {
        cin >> n;
        for (int i = 0; i < n; ++i)
            cin >> a[i];
        sort(a, a + n);
        int res = 0;
        int m = a[n - 1];
        memset(f, 0, sizeof f);
        f[0] = 1;
        for (int i = 0; i < n; ++i)
        {
            if (!f[a[i]])
                ++res;
            for (int j = a[i]; j <= m; ++j)
                f[j] += f[j - a[i]];
        }
        cout << res << endl;
    }
}